# @Filename:    Python的推导式的优雅
# @Author:      王佳伟
# @Time:        2025-02-06 15:41
# @Describe:

'''

在Python中，推导式是一种方便的语法结构，用于根据一些规则来构建新的序列对象。Python支持以下几种类型的推导式：
列表推导式
列表推导式允许您根据一些规则来创建一个新的列表。它的语法为：
css
[表达式 for 变量 in 序列对象 if 条件]
其中，表达式是根据变量计算的值，变量是迭代序列对象的每个元素，并且如果条件为真，则包含在生成的列表中。
例如，以下列表推导式生成一个由1到10的偶数构成的列表：
even_numbers = [x for x in range(1, 11) if x % 2 == 0]print(even_numbers)  # 输出 [2, 4, 6, 8, 10]

字典推导式
字典推导式允许您根据一些规则创建一个新的字典。它的语法为：
css
{键表达式: 值表达式 for 变量 in 序列对象 if 条件}
其中，键表达式和值表达式是根据变量计算的值，变量是迭代序列对象的每个元素，并且如果条件为真，则包含在生成的字典中。
例如，以下字典推导式生成一个由1到5的整数平方组成的字典：
squares = {x: x ** 2 for x in range(1, 6)}print(squares)  # 输出 {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

集合推导式
集合推导式允许您根据一些规则创建一个新的集合。它的语法与列表推导式类似，只是用花括号替代了方括号。
例如，以下集合推导式生成一个由1到10的奇数组成的集合：
odd_numbers = {x for x in range(1, 11) if x % 2 == 1}print(odd_numbers)  # 输出 {1, 3, 5, 7, 9}

生成器表达式
生成器表达式与列表推导式类似，但是它生成一个生成器对象，而不是一个列表对象。它的语法与列表推导式类似，只是用圆括号替代了方括号。例如，以下生成器表达式生成一个由1到10的偶数构成的生成器对象：
even_numbers = (x for x in range(1, 11) if x % 2 == 0)for num in even_numbers:    print(num)  # 输出 2, 4, 6, 8, 10

'''